应用程序编程接口

更新时间:2024-09-21 11:41

应用程序编程接口(英语:Application Programming Interface,简称:API),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简介

应用程序接口为:“‘电脑操作系统(Operating system)’或‘程序库’提供给应用程序调用使用的代码。”其主要目的是让应用程序开发人员得以调用一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。API本身是抽象的,它仅定义了一个接口,而不涉及应用程序在实际实现过程中的具体操作。

例如,图形库中的一组API定义了绘制指针的方式,可于图形输出设备上显示指针。当应用程序需要指针功能时,可在引用、编译时链接到这组API,而运行时就会调用此API的实现(库)来显示指针。

应用程序接口是一组数量上千、极其复杂的函数和副程序,可让程序员做很多任务,譬如“读取文件”、“显示菜单”、“在视窗中显示网页”等等。操作系统的API可用来分配存储器或读取文件。许多系统应用程序借由API接口来实现,像是图形系统数据库、网络Web服务,甚至是在线游戏。

应用程序接口有诸多不同设计。用于快速执行的接口通常包括函数常量变量数据结构。也有其它方式,如通过解释器,或是提供抽象层以屏蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。

应用程序接口经常是软件开发工具包(SDK)的一部分。

目的

A reference implementation of an API is the implementation created by the designer of the API, or one which other implementations of the API are expected to be compared against.

例如,图形库中的一组API定义调用绘制图标函数的方式,以于屏幕上显示图标。程序中调用,编译时连接到这组API,执行时便调用API的实现(库)来显示图标。

操作系统的API可用来分配内存或访问文件。许多系统与应用程序提供API接口与实现,比如图形系统,数据库,网络,Web服务,甚至于某些游戏。

一组API经常是一套软件开发工具包(SDK)的一部分。SDK亦可包含其它工具亦或至于硬件,两个术语并不完全等同.

API有诸多不同设计。用于快速执行的接口通常包括函数,常量变量与数据结构。也有其它方式,如通过解释器,或是提供抽象层以遮蔽同API实现相关的信息,确保使用API的代码无需更改而适应实现变化。

API就是应用程序编程接口。它是能用来操作组件、应用程序或者操作系统的一组函数。典型的情况下,API由一个或多个提供某种特殊功能的DLL组成。

DLL是一个文件,其中包含了在Microsoft Windows下运行的任何应用程序都可调用的函数。运行时,DLL中的函数动态地链接到调用它的应用程序中。无论有多少应用程序调用DLL中的某个函数,在磁盘上只有一个文件包含该函数,且只在它调入内存时才创建该DLL。

您听到最多的API可能是Windows API,它包括构成Windows操作系统的各种DLL。每个Windows应用程序都直接或间接地与Windows API互动。Windows API保证Windows下运行的所有应用程序的行为方式一致。

注意

随着Windows操作系统的发展,现已发布了几个版本的Windows API。Windows 3.1使用Win16 API。Microsoft Windows NT、Windows 95和Windows 98平台使用Microsoft Win32 API。

除Windows API外,其他一些API也已发布。例如,邮件应用程序编程接口(MAPI)是一组可用于编写电子邮件应用程序的DLL。

API传统上是为开发Windows应用程序的C和C++程序员编写的,但其他的编程语言(包括VBA)也可以调用DLL中的函数。因为大部分DLL主要是为C和C++程序员编写和整理说明的,所以调用DLL函数的方法与调用VBA函数会有所不同。在使用API时必须了解如何给DLL函数传递参数。

警告:调用Windows API和其他DLL函数可能会给您的应用程序带来不良影响。从自己的代码中直接调用DLL函数时,您绕过了VBA通常提供的一些安全机制。如果在定义或调用DLL函数时出现错误(所有程序员都不可避免),可能会在应用程序中引起应用程序错误(也称为通用性保护错误,或GPF)。最好的解决办法是在运行代码以前保存该项目,并确保了解DLL函数调用的原理。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}